Java Spring Boot 微服务开发学习手册
项目概述
该项目是一个基于Spring Boot的权限管理系统,采用微服务架构设计。通过分析该项目,您可以学习到Java微服务开发的核心概念和实践技能。该系统主要实现了用户认证、权限管理、组织结构管理等功能。
1. 技术栈概览
核心框架
- Spring Boot: 简化Spring应用开发的框架
- Spring Security: 处理认证和授权
- Spring OAuth2: 实现OAuth2认证流程
- MyBatis-Plus: 增强版的MyBatis ORM框架
- Nacos: 服务发现和配置管理
- Maven: 项目构建和依赖管理工具
数据存储
- 关系型数据库(可能是MySQL)
- Redis: 缓存和会话管理
其他技术
- JWT (JSON Web Token): 用于无状态认证
- 验证码系统
- AOP (面向切面编程)
2. 项目架构分析
2.1 包结构
com.dsh (业务逻辑包)
├── config (配置类)
├── constraints (自定义约束)
├── controller (控制器层)
├── dao/mapper (数据访问层)
├── domain/entity (实体类)
├── service (服务层)
│ └── impl (服务实现类)
├── utils (工具类)
└── vo (视图对象)
lincontrol.boot.auth (认证相关)
├── captcha (验证码模块)
├── config (认证配置)
├── controller (认证控制器)
├── entity (认证实体)
├── exception (异常处理)
├── filter (过滤器)
├── mapper (认证数据访问)
├── service (认证服务)
└── utils (认证工具类)
2.2 微服务架构特点
- 服务拆分: 项目可能是更大系统中的一个认证服务
- 服务注册与发现: 使用Nacos进行服务注册
- 配置中心: 使用外部化配置
- API网关: 可能通过网关进行路由
- 分布式会话: 使用Redis存储会话信息
3. 核心功能模块详解
3.1 认证与授权模块
OAuth2认证流程
AuthorizationServerConfig: OAuth2授权服务器配置SecurityConfig: Spring Security配置AccessTokenConfig: JWT访问令牌配置AuthController: 处理登录、令牌验证等请求
自定义认证
- 密码加密:
Md5PasswordEncoder - 微信小程序认证:
WeChatMiniProgramAuthenticationProvider - 验证码验证:
CaptchaService
安全防护
- 账户锁定:
AccountLockService - 异常处理:
OAuthServerWebResponseExceptionTranslator - 访问拒绝处理:
RequestAccessDeniedHandler
3.2 用户与权限管理
用户管理
- 用户CRUD操作:
SysUsersService - 密码管理: 密码修改、规则配置
- 用户状态管理: 冻结/解冻账户
角色权限
- 角色管理:
SysRolesService - 权限分配:
SysRolePermissionsService - 菜单权限:
SysMenuService - 操作权限:
SysOperationService